Ereignisse

Vor dem Siegeszug graphischer Benutzeroberflächen (engl. graphical user interfaces oder GUI) bestand die Entwicklung eines Programms aus zwei Haupttätigkeiten:

  1. Ordne vordefinierte Befehle und Unterprogrammaufrufe in einem Hauptprogramm an.

  2. Unterbreche an geeigneten Stellen und fordere den Benutzer zu einer Eingabe auf.

Der Entwickler hatte zwar die volle Kontrolle über den Programmablauf, war aber gezwungen die meisten Interaktionselemente selbst zu implementieren. Der Interaktionsablauf blieb deshalb einfach, und die Interaktionsmöglichkeiten blieben beschränkt.

Der heutige Entwickler findet eine Vielfalt systemdefinierter Ereignisse vor. Seine Aufgabe beschränkt sich im wesentlichen auf die Programmierung von Antworten auf diese Ereignisse. TESTVERWALTUNG enthält im Codemodul des Formulars FrmAllgemeines zum Beispiel die folgenden Ereignisse und Antworten (Ereignisprozeduren oder engl. event handlers):

Objekt Ereignis Ereignisprozedur
BtnTestauswahl Click BtnTestauswahl_Click
LstOLE MouseDown LstOLE_MouseDown

Die Ereignisprozedur BtnTestauswahl_Click antwortet auf das Ereignis Click des Objekts BtnTestauswahl (Button mit der Beschriftung Testauswahl). BtnTestauswahl_Click ist eine private VBA-Subroutine, welche das Formular FrmTestauswahl öffnet und in voller Grösse anzeigt:

Private Sub BtnTestauswahl_Click()
  DoCmd.OpenForm "FrmTestauswahl"
  DoCmd.Maximize
End Sub

Der fett geschriebene Code - das Ereignisprozedur-Skelett - wird von MS Access automatisch generiert, wenn die Entwicklerin in der Eigenschaftenliste von BtnTestauswahl das Ereignis "Beim Klicken" wählt:

Die Ereignisprozedur LstOLE_MouseDown beantwortet das Ereignis MouseDown auf dem Objekt LstOLE (Listenelement mit der Überschrift OLE). LstOLE_MouseDown ist eine private VBA-Subroutine, die reagiert, sobald die Benutzerin die Maus drückt, um einen der Listeneinträge zu wählen:

Private Sub LstOLE_MouseDown(...)
  priv_letzteOLEWahl = Me![LstOLE]  'priv_.. ist eine für das ganze Modul gültige Variable
End Sub

Die Ereignisprozedur LstOLE_MouseDown merkt sich lediglich den zuletzt gewählten Listenwert, indem sie den Wert von LstOLE der globalen Variable priv_letzteOLEWahl zuweist.

Weil der Softwareentwickler heute mit eigenen Unterprogrammen auf meist vordefinierte Ereignisse antwortet, nennt man diese Art der Programmierung ereignisorientiert (engl. event-driven). Die Eigenschaftenliste eines Objekts enthält unter dem Register Ereignisse alle Ereignisse, die für das Objekt vordefiniert sind. Oft ist die Zahl der angebotenen Ereignisse gross und es ist nicht klar, welches Ereignis welche Aufgabe erfüllt. Hilfe erhalten Sie, wenn Sie den Cursor auf das interessierende Ereignis setzen und »F1 drücken.

Objekte

MS Access-Steuerelemente